package com.ww.design.pattern.decorator.model;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * 还款信息
 */
public class RepayInfoDTO implements Serializable {

    private static final long serialVersionUID = -744830724288353744L;

    private LoanAccountInfoDTO accountInfo;

    private List<ScheduleDetailDTO> scheduleDetailList;

    Map<Integer, List<AcctArrearsDtlsDTO>> arrearsDtlsListMap;

    /**
     * 贷款账号
     */
    private String AccountNo;

    /**
     * 还款额度
     */
    private BigDecimal repayAmt;

    /**
     * 还款方式
     */
    private String repayMode;


    /**
     * 还款顺序
     */
    private String repaySeq;

    /**
     * 还款期数号
     */
    private Integer instalNo;

    /**
     * 还款交易渠道
     */
    private String repayTradChannel;

    /**
     * 还款交易流水
     */
    private String repayTrad;

    /**
     * 还款交易说明
     */
    private String repayTradDesc;

    /**
     * 真实还款日期
     */
    private String repayDate;

    /**
     * 还款日期
     */
    private Date repayDateTime;

    /**
     * 判断是否需要调用更新代偿标签方法
     */
    private Boolean needUpdateCompensatoryFlag;

    /**
     * 资方还款订单类型，1-资方本息，2-资方担保 3-所有
     */
    private Integer repayPartType;

    /**
     * 当前期是否结清
     */
    private String currentRepayFlag;

    /**
     * 是否为部分提前结清 0-全部提前结清 1-部分提前结清
     */
    private Integer partAdvance;

    private List<RepayScheduleDtlsDTO> repayScheduleDtlsList;

    public LoanAccountInfoDTO getAccountInfo() {
        return accountInfo;
    }

    public void setAccountInfo(LoanAccountInfoDTO accountInfo) {
        this.accountInfo = accountInfo;
    }

    public List<ScheduleDetailDTO> getScheduleDetailList() {
        return scheduleDetailList;
    }

    public void setScheduleDetailList(List<ScheduleDetailDTO> scheduleDetailList) {
        this.scheduleDetailList = scheduleDetailList;
    }

    public String getAccountNo() {
        return AccountNo;
    }

    public void setAccountNo(String accountNo) {
        AccountNo = accountNo;
    }

    public BigDecimal getRepayAmt() {
        return repayAmt;
    }

    public void setRepayAmt(BigDecimal repayAmt) {
        this.repayAmt = repayAmt;
    }

    public String getRepayMode() {
        return repayMode;
    }

    public void setRepayMode(String repayMode) {
        this.repayMode = repayMode;
    }

    public String getRepaySeq() {
        return repaySeq;
    }

    public void setRepaySeq(String repaySeq) {
        this.repaySeq = repaySeq;
    }

    public Integer getInstalNo() {
        return instalNo;
    }

    public void setInstalNo(Integer instalNo) {
        this.instalNo = instalNo;
    }

    public String getRepayTradChannel() {
        return repayTradChannel;
    }

    public void setRepayTradChannel(String repayTradChannel) {
        this.repayTradChannel = repayTradChannel;
    }

    public String getRepayTrad() {
        return repayTrad;
    }

    public void setRepayTrad(String repayTrad) {
        this.repayTrad = repayTrad;
    }

    public String getRepayTradDesc() {
        return repayTradDesc;
    }

    public void setRepayTradDesc(String repayTradDesc) {
        this.repayTradDesc = repayTradDesc;
    }

    public String getRepayDate() {
        return repayDate;
    }

    public void setRepayDate(String repayDate) {
        this.repayDate = repayDate;
    }

    public Boolean getNeedUpdateCompensatoryFlag() {
        return needUpdateCompensatoryFlag;
    }

    public void setNeedUpdateCompensatoryFlag(Boolean needUpdateCompensatoryFlag) {
        this.needUpdateCompensatoryFlag = needUpdateCompensatoryFlag;
    }

    public Integer getRepayPartType() {
        return repayPartType;
    }

    public void setRepayPartType(Integer repayPartType) {
        this.repayPartType = repayPartType;
    }

    public String getCurrentRepayFlag() {
        return currentRepayFlag;
    }

    public void setCurrentRepayFlag(String currentRepayFlag) {
        this.currentRepayFlag = currentRepayFlag;
    }

    public Integer getPartAdvance() {
        return partAdvance;
    }

    public void setPartAdvance(Integer partAdvance) {
        this.partAdvance = partAdvance;
    }

    public List<RepayScheduleDtlsDTO> getRepayScheduleDtlsList() {
        return repayScheduleDtlsList;
    }

    public void setRepayScheduleDtlsList(List<RepayScheduleDtlsDTO> repayScheduleDtlsList) {
        this.repayScheduleDtlsList = repayScheduleDtlsList;
    }

    public Map<Integer, List<AcctArrearsDtlsDTO>> getArrearsDtlsListMap() {
        return arrearsDtlsListMap;
    }

    public void setArrearsDtlsListMap(Map<Integer, List<AcctArrearsDtlsDTO>> arrearsDtlsListMap) {
        this.arrearsDtlsListMap = arrearsDtlsListMap;
    }

    public Date getRepayDateTime() {
        return repayDateTime;
    }

    public void setRepayDateTime(Date repayDateTime) {
        this.repayDateTime = repayDateTime;
    }
}